home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / include / linux / if_addr.h < prev    next >
C/C++ Source or Header  |  2009-10-16  |  1KB  |  62 lines

  1. #ifndef __LINUX_IF_ADDR_H
  2. #define __LINUX_IF_ADDR_H
  3.  
  4. #include <linux/types.h>
  5. #include <linux/netlink.h>
  6.  
  7. struct ifaddrmsg
  8. {
  9.     __u8        ifa_family;
  10.     __u8        ifa_prefixlen;    /* The prefix length        */
  11.     __u8        ifa_flags;    /* Flags            */
  12.     __u8        ifa_scope;    /* Address scope        */
  13.     __u32        ifa_index;    /* Link index            */
  14. };
  15.  
  16. /*
  17.  * Important comment:
  18.  * IFA_ADDRESS is prefix address, rather than local interface address.
  19.  * It makes no difference for normally configured broadcast interfaces,
  20.  * but for point-to-point IFA_ADDRESS is DESTINATION address,
  21.  * local address is supplied in IFA_LOCAL attribute.
  22.  */
  23. enum
  24. {
  25.     IFA_UNSPEC,
  26.     IFA_ADDRESS,
  27.     IFA_LOCAL,
  28.     IFA_LABEL,
  29.     IFA_BROADCAST,
  30.     IFA_ANYCAST,
  31.     IFA_CACHEINFO,
  32.     IFA_MULTICAST,
  33.     __IFA_MAX,
  34. };
  35.  
  36. #define IFA_MAX (__IFA_MAX - 1)
  37.  
  38. /* ifa_flags */
  39. #define IFA_F_SECONDARY        0x01
  40. #define IFA_F_TEMPORARY        IFA_F_SECONDARY
  41.  
  42. #define    IFA_F_NODAD        0x02
  43. #define IFA_F_OPTIMISTIC    0x04
  44. #define    IFA_F_HOMEADDRESS    0x10
  45. #define IFA_F_DEPRECATED    0x20
  46. #define IFA_F_TENTATIVE        0x40
  47. #define IFA_F_PERMANENT        0x80
  48.  
  49. struct ifa_cacheinfo
  50. {
  51.     __u32    ifa_prefered;
  52.     __u32    ifa_valid;
  53.     __u32    cstamp; /* created timestamp, hundredths of seconds */
  54.     __u32    tstamp; /* updated timestamp, hundredths of seconds */
  55. };
  56.  
  57. /* backwards compatibility for userspace */
  58. #define IFA_RTA(r)  ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifaddrmsg))))
  59. #define IFA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifaddrmsg))
  60.  
  61. #endif
  62.